//++++++++++++++++++++++++++++++++++++
// QuantV 3.0.0 shader
// Original code by Rockstar Games
//++++++++++++++++++++++++++++++++++++
vs_4_0
dcl_constantbuffer cb1[16], immediateIndexed
dcl_constantbuffer cb3[53], immediateIndexed
dcl_constantbuffer cb12[16], immediateIndexed
dcl_input v0.xyz
dcl_output_siv o0.xyzw, position
dcl_output o1.xyz
dcl_output o2.xyzw
dcl_output o3.xyz
dcl_output o4.xyz
dcl_temps 8
mul r0.xyz, cb12[1].yzxy, cb12[2].zxyz
mad r0.xyz, cb12[2].yzxy, cb12[1].zxyz, -r0.xyzx
ge r0.w, l(9.999000e-001), |v0.z|
dp2 r1.x, v0.xyxx, v0.xyxx
rsq r1.x, r1.x
mul r1.xy, r1.xxxx, v0.xyxx
and r1.xy, r0.wwww, r1.xyxx
mul r0.xyz, r0.xyzx, r1.yyyy
mad r0.xyz, cb12[2].xyzx, r1.xxxx, r0.xyzx
ge r0.w, l(0.000000e+000), v0.z
add r1.x, v0.z, l(1.000000e+000)
mul r1.x, r1.x, r1.x
add r1.y, -cb12[5].x, l(1.000000e+000)
mad r1.x, -r1.x, r1.y, l(1.000000e+000)
mad r1.y, -r1.x, r1.x, l(1.000000e+000)
min r1.y, |r1.y|, l(1.000000e+000)
sqrt r1.y, r1.y
mul r1.xzw, r1.xxxx, cb12[1].xxyz
mul r2.xyz, r0.xyzx, r1.yyyy
add r1.y, -v0.z, l(1.000000e+000)
mul r3.xy, r1.yyyy, cb12[5].xyxx
mul r3.xzw, r3.xxxx, cb12[1].xxyz
mul r0.xyz, r0.xyzx, r3.yyyy
movc r0.xyz, r0.wwww, r2.xyzx, r0.xyzx
movc r1.xyz, r0.wwww, r1.xzwx, r3.xzwx
add r0.xyz, r0.xyzx, r1.xyzx
mad r0.xyz, r0.xyzx, cb12[4].yyyy, cb12[0].xyzx
add r1.xyz, r0.xyzx, -cb1[15].xyzx
dp3 r2.y, r1.xyzx, r1.xyzx
sqrt r0.w, r2.y
lt r1.w, l(0.000000e+000), r0.w
if_nz r1.w
  add r3.xyz, cb1[15].xyzx, -cb12[0].xyzx
  mul r1.w, cb12[5].x, cb12[5].x
  dp3 r2.z, r3.xyzx, r1.xyzx
  dp3 r2.w, r3.xyzx, r3.xyzx
  dp3 r3.w, r3.xyzx, cb12[1].xyzx
  dp3 r4.x, r1.xyzx, cb12[1].xyzx
  mul r4.y, r4.x, r4.x
  mad r4.z, -r1.w, r2.y, r4.y
  mul r4.w, r1.w, r2.z
  mad r5.xy, r4.xxxx, r3.wwww, -r4.wwww
  mul r4.w, r1.w, r2.w
  mad r3.w, r3.w, r3.w, -r4.w
  mul r3.w, r3.w, r4.z
  mad r3.w, r5.y, r5.y, -r3.w
  mov r2.x, -r4.z
  sqrt r6.x, |r3.w|
  mul r3.w, cb12[4].y, cb12[4].y
  mad r2.w, -cb12[4].y, cb12[4].y, r2.w
  mul r2.w, r2.y, r2.w
  mad r2.w, r2.z, r2.z, -r2.w
  sqrt r2.w, |r2.w|
  mov r5.zw, -r2.zzzz
  mov r6.y, -r6.x
  mul r6.zw, r2.wwww, l(0.000000e+000, 0.000000e+000, 1.000000e+000, -1.000000e+000)
  add r5.xyzw, r5.xyzw, r6.xyzw
  div r5.xyzw, r5.xyzw, r2.xxyy
  max r2.x, r5.w, r5.z
  mad r6.xyz, r1.xyzx, r5.xxxx, cb1[15].xyzx
  mad r7.xyz, r1.xyzx, r5.yyyy, cb1[15].xyzx
  add r6.xyz, r6.xyzx, -cb12[0].xyzx
  dp3 r6.x, r6.xyzx, cb12[1].xyzx
  add r7.xyz, r7.xyzx, -cb12[0].xyzx
  dp3 r6.y, r7.xyzx, cb12[1].xyzx
  ge r4.zw, r6.xxxy, l(0.000000e+000, 0.000000e+000, 0.000000e+000, 0.000000e+000)
  and r4.zw, r4.zzzw, l(0, 0, 0x3f800000, 0x3f800000)
  mul r4.zw, r4.zzzw, r5.xxxy
  max r2.w, r4.w, r4.z
  div r4.y, r4.y, r2.y
  ge r1.w, r4.y, r1.w
  lt r4.x, l(0.000000e+000), r4.x
  and r1.w, r1.w, r4.x
  and r1.w, r1.w, l(0x49742400)
  add r1.w, r1.w, r2.w
  min r1.w, r2.x, r1.w
  max r4.y, r1.w, l(1.010000e+000)
  min r1.w, r2.z, l(0.000000e+000)
  div r1.w, r1.w, r2.y
  mad r2.xyz, -r1.xyzx, r1.wwww, r3.xyzx
  dp3 r1.w, r2.xyzx, r2.xyzx
  div r1.w, r1.w, r3.w
  add r1.w, -r1.w, l(1.000000e+000)
  mul r1.w, r1.w, r1.w
  add r2.x, -cb12[15].w, l(1.000000e+000)
  mad r2.x, r2.x, r1.w, cb12[15].w
  div r1.w, r1.w, r2.x
  add r2.xyz, cb12[3].xyzx, -cb12[15].xyzx
  lt r7.x, cb12[15].y, cb12[15].x
  mul r7.y, cb12[15].y, l(2.865200e+000)
  lt r7.y, cb12[15].x, r7.y
  and r7.x, r7.y, r7.x
  mul r7.y, cb12[15].z, l(2.959100e+000)
  lt r7.y, r7.y, cb12[15].y
  and r7.x, r7.y, r7.x
  movc r7.xyz, r7.xxxx, cb12[15].yyyy, cb12[15].xyzx
  mad o4.xyz, r1.wwww, r2.xyzx, r7.xyzx
  div r2.xyz, r1.xyzx, r0.wwww
  mov r4.x, l(1.000000)
else 
  mov o4.xyz, l(0,0,0,0)
  mov r2.xyz, l(0,0,0,0)
  mov r4.xy, l(0,0,0,0)
endif 
mad r3.xyz, r1.xyzx, r4.xxxx, cb1[15].xyzx
mad r1.xyz, r1.xyzx, r4.yyyy, cb1[15].xyzx
add r1.xyz, -r3.xyzx, r1.xyzx
dp3 r0.w, r1.xyzx, r1.xyzx
sqrt r0.w, r0.w
mul r1.x, r0.w, l(5.000000e-003)
mad r1.xyz, r2.xyzx, r1.xxxx, r3.xyzx
mul r1.w, cb12[3].w, cb12[14].x
max r0.w, r0.w, l(1.000000e+000)
mul r0.w, r0.w, r1.w
add r1.xyz, r1.xyzx, -cb1[15].xyzx
dp3 r1.x, r1.xyzx, r1.xyzx
sqrt r1.x, r1.x
add r1.y, r1.x, -cb3[50].x
max r1.y, r1.y, l(0.000000e+000)
div r1.x, r1.y, r1.x
mul r1.x, r1.x, r1.z
mul r1.z, r1.x, cb3[52].z
lt r1.x, l(1.000000e-002), |r1.x|
mul r1.w, r1.z, l(-1.442695e+000)
exp r1.w, r1.w
add r1.w, -r1.w, l(1.000000e+000)
div r1.z, r1.w, r1.z
movc r1.x, r1.x, r1.z, l(1.000000)
mul r1.z, r1.y, cb3[51].w
mul r1.x, r1.x, r1.z
min r1.x, r1.x, l(1.000000e+000)
mul r1.x, r1.x, l(1.442695e+000)
exp r1.x, r1.x
min r1.x, r1.x, l(1.000000e+000)
add r1.x, -r1.x, l(1.000000e+000)
mul r1.z, r1.x, cb3[52].y
mad r1.x, -r1.x, cb3[52].y, l(1.000000e+000)
add r1.y, r1.y, -cb3[52].x
max r1.y, r1.y, l(0.000000e+000)
mul r1.xy, r1.xyxx, cb3[51].yxyy
mul r1.y, r1.y, l(1.442695e+000)
exp r1.y, r1.y
add r1.y, -r1.y, l(1.000000e+000)
mad_sat r1.x, r1.x, r1.y, r1.z
add r1.x, -r1.x, l(1.000000e+000)
mul o2.z, r0.w, r1.x
mul r1.xyzw, r0.yyyy, cb1[9].xyzw
mad r1.xyzw, r0.xxxx, cb1[8].xyzw, r1.xyzw
mad r1.xyzw, r0.zzzz, cb1[10].xyzw, r1.xyzw
add r1.xyzw, r1.xyzw, cb1[11].xyzw
add r2.x, r1.w, r1.x
add r2.y, -r1.y, r1.w
mul o2.xy, r2.xyxx, l(5.000000e-001, 5.000000e-001, 0.000000e+000, 0.000000e+000)
mov o0.xyzw, r1.xyzw
mov o2.w, r1.w
mov o1.xyz, r0.xyzx
mov r4.z, l(0)
mov o3.xyz, r4.xyzx
ret